const utils = {
	//金额格式化
	rmoney: function(money) {
		return parseFloat(money).toFixed(2).toString().split('').reverse().join('').replace(/(\d{3})/g, '$1,')
			.replace(
				/\,$/, '').split('').reverse().join('');
	},
	// 获取里程
	getDistance: function(lat1, lng1, lat2, lng2) {
		function Rad(d) {
			return d * Math.PI / 180.0;
		}
		if (!lat1 || !lng1) {
			return '';
		}
		// lat1用户的纬度
		// lng1用户的经度
		// lat2商家的纬度
		// lng2商家的经度
		let radLat1 = Rad(lat1);
		let radLat2 = Rad(lat2);
		let a = radLat1 - radLat2;
		let b = Rad(lng1) - Rad(lng2);
		let s = 2 * Math.asin(Math.sqrt(Math.pow(Math.sin(a / 2), 2) + Math.cos(radLat1) * Math.cos(radLat2) *
			Math.pow(
				Math.sin(b / 2), 2)));
		s = s * 6378.137;
		s = Math.round(s * 10000) / 10000;
		s = '(距您' + s.toFixed(2) + '公里)' //保留两位小数
		return s
	},
	//检查用户是否登录 没有登录让用户去登录
	checkToken: function() {
		return new Promise(function(resolve, reject) {
			let token = uni.getStorageSync("FF_TOKEN");
			if (token) {
				//兼容处理 未绑定手机号
				resolve();
			} else { 
				uni.navigateTo({
					url: "/pages/login/login"
				})
				reject();
			}
		});
	},
	// 格式化时间
	dateFormat: function(fmt = 'YYYY-MM-DD', date = new Date()) {
		const time = new Date(date)
		const weekArr = ['日', '一', '二', '三', '四', '五', '六']
		var o = {
			'M+': time.getMonth() + 1, //月份
			'D+': time.getDate(), //日
			'h+': time.getHours(), //小时
			'm+': time.getMinutes(), //分
			's+': time.getSeconds(), //秒
			'q+': Math.floor((time.getMonth() + 3) / 3), //季度
			S: time.getMilliseconds(), //毫秒
			W: time.getDay(), //星期
		}
		if (/(Y+)/.test(fmt))
			fmt = fmt.replace(RegExp.$1, (time.getFullYear() + '').substr(4 - RegExp.$1.length))
		for (var k in o)
			if (new RegExp('(' + k + ')').test(fmt))
				fmt = fmt.replace(
					RegExp.$1,
					RegExp.$1 == 'W' ?
					weekArr[o[k]] :
					RegExp.$1.length == 1 ?
					o[k] :
					('00' + o[k]).substr(('' + o[k]).length)
				)
		return fmt
	},
	versionToNum: function(value) {
		const version = value.toString()
		let versionArray = version.split('.')
		let num_place = ['', '0', '00', '000', '0000']
		let r = num_place.reverse()
		for (let i = 0; i < versionArray.length; i++) {
			let len = versionArray[i].length
			versionArray[i] = r[len] + versionArray[i]
		}
		return versionArray.join('')
	},
	// 两数之间的随机数
	randomNum: function(min, max) {
		return min + Math.floor(Math.random() * (max - min + 1))
	}
}

module.exports = {
	rmoney: utils.rmoney,
	getDistance: utils.getDistance,
	checkToken: utils.checkToken,
	dateFormat: utils.dateFormat,
	versionToNum: utils.versionToNum,
	randomNum: utils.randomNum
}
